# -*- coding: utf-8 -*-
"""
@Author: Logan
@Date:   2025/7/9 17:04
@Description: 
"""
import logging
import os
import time

from common.tools import get_project_path, sep


def get_log(logger_name):
    # 创建一个logger
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.INFO)

    # 设置日志存放路径，日志文件名
    # 获取本地时间，转换为设置的格式
    rq = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    # 设置日志存放路径
    all_log_path = get_project_path() + sep(["logs", "all_test_logs"], add_sep_before=True, add_sep_after=True)
    # 如果日志目录不存在，就自动创建
    if not os.path.exists(all_log_path):
        os.makedirs(all_log_path)
    # 设置日志文件名
    all_log_name = all_log_path + rq + ".log"

    # 创建handler
    # 创建一个handler写入所有日志
    fh = logging.FileHandler(all_log_name)
    fh.setLevel(logging.INFO)

    # 定义日志输出格式
    # 以时间-日志器名称-日志级别-日志内容的形式展示
    # 定义日志输出格式：时间 - 文件名 - 模块名 - 函数名 - 行号 - 日志级别 - 日志内容
    all_log_formatter = logging.Formatter(
        "%(asctime)s - %(filename)s - %(module)s - %(funcName)s - %(lineno)d - %(levelname)s - %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",  # 时间格式：年-月-日 时:分:秒
    )
    # 将格式应用到文件处理器
    fh.setFormatter(all_log_formatter)

    # 给logger添加handler
    logger.addHandler(fh)
    return logger


log = get_log("自动化测试")

if __name__ == "__main__":
    # logger = Log().ui_logger
    log.debug("I am a debug message")
    log.info("I am a info message")
    log.warning("I am a warning message")
    log.error("I am a error message")
    log.critical("I am a critical message")


